#ifndef __IS_CORE_RAYTRACE_SPHERICALSAMPLERS__
#define __IS_CORE_RAYTRACE_SPHERICALSAMPLERS__

#include "../STLFwd.h"

namespace IS
{

class IS_CORE_API RandomSphericalSampler
{
public:
	void generateN(size_t n, std_vector(Vec3f)& outs);
};

class IS_CORE_API RandomSphericalSamplerUniform
{
public:
	void generateN(size_t n, std_vector(Vec3f)& outs);
};

class IS_CORE_API HaltonSphericalSampler
{
public:
	HaltonSphericalSampler();
	~HaltonSphericalSampler();

	void generateN(size_t n, std_vector(Vec3f)& outs);

private:
	class Impl;
	Impl* mImpl;
};

}	// namespace IS

#endif	// __IS_CORE_RAYTRACE_SPHERICALSAMPLERS__

